package com.sihuatech.coreagent.model.request;

public class PlatFormChargeReq {
	
	/**
	 * 子公司代码
	 */
	private String ctype;
	
	/**
	 * 是否包月	目前只支持包月  0点播  1包月
	 */
	private String isMonthly;
	
	/**
	 * 操作	点播不填，包月必填  0: 发起包月  1: 退订包月
	 */
	private String opt;
	
	/**
	 * 业务类型	
	 * 01：视讯个人产品灵活计费
	 * 02：视讯魔百和OTT灵活计费
	 * 03：视讯魔百和IPTV灵活计费
	 * 11：视讯个人产品普通计费
	 * 12：视讯魔百和OTT普通计费
	 * 13：视讯魔百和IPTV普通计费
	 */
	private String bizType;
	
	/**
	 * 是否是省侧退订通知	普通计费不填，默认为0 Opt 为1时必填 
	 * 1 省侧退订通知（省侧反向退订时，视讯平台侧需要通知SDK服务端）
	 * 0 不是省侧退订通知
	 */
	private String isCancelNotice;
	
	/**
	 * 是否退订活动	普通计费不填，其他默认为0
	 * 1 退订活动，后续不再续订
	 * 0 不退订活动
	 */
	private String isCancelAll;
	
	/**
	 * 订单号	必填，唯一订单编号，用于贯穿业务的全流程，包括APP、管控平台、计费平台、省BOSS、大网统一支付、子公司业务平台等系统，作为跟踪、对账、结算的依据。
	 * 订单号的规则为：22位字符+数字的组合；考虑到扩展性，使用以下代码作为前缀：
	 * 055：魔百和OTT
	 * 056：魔百和IPTV
	 * 其余19位由业务平台自行定义，并由业务平台自行保证订单号的唯一性。
	 */
	private String orderId;
	
	/**
	 * 周期序号	普通计费不填，IsCancelNotice为0时，该字段必填，其他选填
	 * 表示要订购或退订周期序号，1表示第一个周期
	 */
	private String periodIndex;
	
	/**
	 * 计费月份	普通计费不填，灵活计费点播必填，包月不填。
	 * 订单扣费月，（格式：YYYYMM或者YYYYMM –YYYYMM）
	 * 201801 （表示2018年1月计费）
	 * 201801-201803 （表示18年 1月到3月只扣一次费）
	 */
	private String orderMonth;
	
	/**
	 * 支付手机号
	 */
	private String payNum;
	
	/**
	 * 机顶盒ID或UserID
	 * （两者选一）	当填值为机顶盒用户ID，格式固定为U+用户ID；如果以M结尾，表示付费号码与机顶盒绑定号码不一致。
	 * 例如：用户ID为 1234567
	 * 当填值为U1234567M时，表示计费号码与机顶盒绑定手机号码不一致；
	 * 当填值为U1234567时，表示计费号码与机顶盒绑定手机号码一致。
	 */
	private String stbID;
	
	/**
	 * 渠道代码
	 */
	private String channelCode;
	
	/**
	 * 企业代码（预留）	结算使用
	 */
	private String cooperateCode;
	
	/**
	 * 产品代码	点播选填，与ContentCode二者必填其一，包月必填
	 */
	private String productCode;
	
	/**
	 * 内容代码	选填，与ProductCode二者必填其一
	 */
	private String contentCode;
	
	/**
	 * 服务商编码	必填 SPCode 说明    
	 */
	private String spCode;
	
	/**
	 * 业务类型	点播忽略；包月必填，或使用产品编码
	 */
	private String servCode;
	
	/**
	 * 平台编码	用于填写回调通知的平台编码，计费成功后通知该平台，填写值参见平台编码 ，如果平台不在参考值内，可不填
	 */
	private String platFormCode;
	
	/**
	 * 灵活计费业务ID	灵活计费必填，普通计费不填
	 */
	private String customBizId;
	
	/**
	 * 灵活计费业务描述
	 */
	private String customBizDesc;
	
	/**
	 * 费用：分
	 */
	private String fee;
	
	/**
	 * 营销案ID	点播不填，灵活计费包月选填，省侧改造完成后具备营销活动能力时填写
	 */
	private String campaignId;
	
	/**
	 * 透传字段
	 */
	private String cpparam;
	
	/**
	 * 保留字段
	 */
	private String reserveParam;
	
	/**
	 * 保留字段
	 */
	private String reserveParam2;
	
	/**
	 * 保留字段
	 */
	private String reserveParam3;
	
	/**
	 * 保留字段
	 */
	private String reserveParam4;
	
	/**
	 * 保留字段
	 */
	private String reserveParam5;
	
	public PlatFormChargeReq() {}

	public PlatFormChargeReq(String ctype, String isMonthly, String opt, String bizType, String isCancelNotice,
			String isCancelAll, String orderId, String periodIndex, String orderMonth, String payNum, String stbID,
			String channelCode, String cooperateCode, String productCode, String contentCode, String spCode,
			String servCode, String platFormCode, String customBizId, String customBizDesc, String fee,
			String campaignId, String cpparam, String reserveParam, String reserveParam2, String reserveParam3,
			String reserveParam4, String reserveParam5) {
		super();
		this.ctype = ctype;
		this.isMonthly = isMonthly;
		this.opt = opt;
		this.bizType = bizType;
		this.isCancelNotice = isCancelNotice;
		this.isCancelAll = isCancelAll;
		this.orderId = orderId;
		this.periodIndex = periodIndex;
		this.orderMonth = orderMonth;
		this.payNum = payNum;
		this.stbID = stbID;
		this.channelCode = channelCode;
		this.cooperateCode = cooperateCode;
		this.productCode = productCode;
		this.contentCode = contentCode;
		this.spCode = spCode;
		this.servCode = servCode;
		this.platFormCode = platFormCode;
		this.customBizId = customBizId;
		this.customBizDesc = customBizDesc;
		this.fee = fee;
		this.campaignId = campaignId;
		this.cpparam = cpparam;
		this.reserveParam = reserveParam;
		this.reserveParam2 = reserveParam2;
		this.reserveParam3 = reserveParam3;
		this.reserveParam4 = reserveParam4;
		this.reserveParam5 = reserveParam5;
	}

	public String getCtype() {
		return ctype;
	}

	public void setCtype(String ctype) {
		this.ctype = ctype;
	}

	public String getIsMonthly() {
		return isMonthly;
	}

	public void setIsMonthly(String isMonthly) {
		this.isMonthly = isMonthly;
	}

	public String getOpt() {
		return opt;
	}

	public void setOpt(String opt) {
		this.opt = opt;
	}

	public String getBizType() {
		return bizType;
	}

	public void setBizType(String bizType) {
		this.bizType = bizType;
	}

	public String getIsCancelNotice() {
		return isCancelNotice;
	}

	public void setIsCancelNotice(String isCancelNotice) {
		this.isCancelNotice = isCancelNotice;
	}

	public String getIsCancelAll() {
		return isCancelAll;
	}

	public void setIsCancelAll(String isCancelAll) {
		this.isCancelAll = isCancelAll;
	}

	public String getOrderId() {
		return orderId;
	}

	public void setOrderId(String orderId) {
		this.orderId = orderId;
	}

	public String getPeriodIndex() {
		return periodIndex;
	}

	public void setPeriodIndex(String periodIndex) {
		this.periodIndex = periodIndex;
	}

	public String getOrderMonth() {
		return orderMonth;
	}

	public void setOrderMonth(String orderMonth) {
		this.orderMonth = orderMonth;
	}

	public String getPayNum() {
		return payNum;
	}

	public void setPayNum(String payNum) {
		this.payNum = payNum;
	}

	public String getStbID() {
		return stbID;
	}

	public void setStbID(String stbID) {
		this.stbID = stbID;
	}

	public String getChannelCode() {
		return channelCode;
	}

	public void setChannelCode(String channelCode) {
		this.channelCode = channelCode;
	}

	public String getCooperateCode() {
		return cooperateCode;
	}

	public void setCooperateCode(String cooperateCode) {
		this.cooperateCode = cooperateCode;
	}

	public String getProductCode() {
		return productCode;
	}

	public void setProductCode(String productCode) {
		this.productCode = productCode;
	}

	public String getContentCode() {
		return contentCode;
	}

	public void setContentCode(String contentCode) {
		this.contentCode = contentCode;
	}

	public String getSpCode() {
		return spCode;
	}

	public void setSpCode(String spCode) {
		this.spCode = spCode;
	}

	public String getServCode() {
		return servCode;
	}

	public void setServCode(String servCode) {
		this.servCode = servCode;
	}

	public String getPlatFormCode() {
		return platFormCode;
	}

	public void setPlatFormCode(String platFormCode) {
		this.platFormCode = platFormCode;
	}

	public String getCustomBizId() {
		return customBizId;
	}

	public void setCustomBizId(String customBizId) {
		this.customBizId = customBizId;
	}

	public String getCustomBizDesc() {
		return customBizDesc;
	}

	public void setCustomBizDesc(String customBizDesc) {
		this.customBizDesc = customBizDesc;
	}

	public String getFee() {
		return fee;
	}

	public void setFee(String fee) {
		this.fee = fee;
	}

	public String getCampaignId() {
		return campaignId;
	}

	public void setCampaignId(String campaignId) {
		this.campaignId = campaignId;
	}

	public String getCpparam() {
		return cpparam;
	}

	public void setCpparam(String cpparam) {
		this.cpparam = cpparam;
	}

	public String getReserveParam() {
		return reserveParam;
	}

	public void setReserveParam(String reserveParam) {
		this.reserveParam = reserveParam;
	}

	public String getReserveParam2() {
		return reserveParam2;
	}

	public void setReserveParam2(String reserveParam2) {
		this.reserveParam2 = reserveParam2;
	}

	public String getReserveParam3() {
		return reserveParam3;
	}

	public void setReserveParam3(String reserveParam3) {
		this.reserveParam3 = reserveParam3;
	}

	public String getReserveParam4() {
		return reserveParam4;
	}

	public void setReserveParam4(String reserveParam4) {
		this.reserveParam4 = reserveParam4;
	}

	public String getReserveParam5() {
		return reserveParam5;
	}

	public void setReserveParam5(String reserveParam5) {
		this.reserveParam5 = reserveParam5;
	}

	@Override
	public String toString() {
		return "PlatFormChargeReq [ctype=" + ctype + ", isMonthly=" + isMonthly + ", opt=" + opt + ", bizType="
				+ bizType + ", isCancelNotice=" + isCancelNotice + ", isCancelAll=" + isCancelAll + ", orderId="
				+ orderId + ", periodIndex=" + periodIndex + ", orderMonth=" + orderMonth + ", payNum=" + payNum
				+ ", stbID=" + stbID + ", channelCode=" + channelCode + ", cooperateCode=" + cooperateCode
				+ ", productCode=" + productCode + ", contentCode=" + contentCode + ", spCode=" + spCode + ", servCode="
				+ servCode + ", platFormCode=" + platFormCode + ", customBizId=" + customBizId + ", customBizDesc="
				+ customBizDesc + ", fee=" + fee + ", campaignId=" + campaignId + ", cpparam=" + cpparam
				+ ", reserveParam=" + reserveParam + ", reserveParam2=" + reserveParam2 + ", reserveParam3="
				+ reserveParam3 + ", reserveParam4=" + reserveParam4 + ", reserveParam5=" + reserveParam5 + "]";
	}

}
